#pragma once

#include "Expression.hpp"
#include "Syntax/Token.hpp"
#include "Syntax/Object/Object.hpp"

class LiteralExpressionSyntax : public ExpressionSyntax {
public:
  LiteralExpressionSyntax(SharedToken literalToken)
      : ExpressionSyntax(SyntaxKind::LiteralExpression, "LiteralExpression"),
        LiteralToken(literalToken), Value(literalToken->GetTextValue()) {}
        
  virtual std::vector<SharedNode> GetChildren() override {
    return {this->LiteralToken};
  }

public:
  SharedToken LiteralToken;
  SharedObject Value;
};
